# -*- coding: utf-8 -*-
# vim: tabstop=4 shiftwidth=4 softtabstop=4
#
# Copyright (C) 2014-2025 GEM Foundation
#
# OpenQuake is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OpenQuake is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with OpenQuake. If not, see <http://www.gnu.org/licenses/>.

"""
Module exports :class:'AmbraseysEtAl2005'
                class:'AmbraseysEtAl2005Vertical'.
"""
import numpy as np
from scipy.constants import g


from openquake.hazardlib.gsim.base import GMPE, CoeffsTable
from openquake.hazardlib.gsim import utils
from openquake.hazardlib import const
from openquake.hazardlib.imt import PGA, SA


def _compute_distance_scaling(C, rjb, mag):
    """
    Returns the distance scaling term
    """
    rscale1 = np.sqrt(pow(rjb,2) + pow(C['a5'],2))
    return (C['a3'] + C['a4'] * mag) * np.log10(rscale1)


def _compute_magnitude_scaling(C, mag):
    """
    Returns the magnitude scaling term
    """
    return C['a2'] * mag + C['a1']


def _compute_site_amplification(C, vs30):
    """
    Compute the site amplificatiom terms:
    """
    softSoil, stifSoil = _get_site_type_dummy_variables(vs30)
    return (C['a6'] * softSoil + C['a7'] * stifSoil)

def _get_site_type_dummy_variables(vs30):
    """
    Get site type dummy variables, two site types are considered
    based on the shear wave velocity intervals in the uppermost 30 m, Vs30:
    softSoil: Vs30 <= 360 m/s
    stifSoil: 360 < Vs30 <= 750 m/s
    """
    stifSoil = np.zeros(len(vs30))
    softSoil = np.zeros(len(vs30))

    # Soft Soil;  Vs30 <= 360 m/s.
    idx = (vs30 >= 1E-10) & (vs30 <= 360)
    softSoil[idx] = 1.0
    # Stiff Soil; 360 < Vs30 <= 750 m/s.
    idx = (vs30 > 360) & (vs30 <= 750)
    stifSoil[idx] = 1.0    
    return softSoil, stifSoil

def _get_mechanism(C, ctx):
    """
    Compute the fault mechanism terms:
    thrust/reverse: 30<rake<150
    normal: -150<rake<-30
    odd: others
    """
    fO, fN, fT = utils.get_fault_type_dummy_variables(ctx)
    return (C['a8'] * fN + C['a9'] * fT + C['a10'] * fO)
    
class AmbraseysEtAl2005(GMPE):
    """
    Implements the horizontal PGA and SA GMPE of "N.N. AMBRASEYS1, J. DOUGLAS1, S.K. SARMA and
    P.M. SMIT (2005): Equations for the Estimation of Strong Ground Motions from Shallow Crustal
    Earthquakes Using Data from Europe and the Middle East: Horizontal Peak Ground Acceleration and 
    Spectral Acceleration, Bulletin of Earthquake Engineering: 3:1–53, DOI 10.1007/s10518-005-0183-0.
    """
    #: The GMPE is derived from shallow earthquakes in EU and Middle-east
    DEFINED_FOR_TECTONIC_REGION_TYPE = const.TRT.ACTIVE_SHALLOW_CRUST

    #: Supported intensity measure types are are peak ground acceleration and period <= 2.5 (s)
    DEFINED_FOR_INTENSITY_MEASURE_TYPES = {PGA, SA}

    #: Supported intensity measure component the larger horizontal component,
    DEFINED_FOR_INTENSITY_MEASURE_COMPONENT = const.IMC.GREATER_OF_TWO_HORIZONTAL

    #: Supported standard deviation types are total, inter- and intra- events.
    DEFINED_FOR_STANDARD_DEVIATION_TYPES = {const.StdDev.TOTAL, const.StdDev.INTER_EVENT, const.StdDev.INTRA_EVENT}

    #: Required site parameter is only Vs30
    REQUIRES_SITES_PARAMETERS = {'vs30'}

    #: Required rupture parameters is rake and mag
    REQUIRES_RUPTURE_PARAMETERS = {'mag', 'rake'}

    #: Required distance measure is Rjb
    REQUIRES_DISTANCES = {'rjb'}

    def compute(self, ctx: np.recarray, imts, mean, sig, tau, phi):
        """
        See :meth:`superclass method
        <.base.GroundShakingIntensityModel.compute>`
        for spec of input and result values.
        """
        for m, imt in enumerate(imts):
            C = self.COEFFS[imt]

            imean = (_compute_magnitude_scaling(C, ctx.mag) +
                     _compute_distance_scaling(C, ctx.rjb, ctx.mag) +
                     _compute_site_amplification(C, ctx.vs30) +
                     _get_mechanism(C, ctx))
            # Original GMPE returns log10 acceleration in m/s/s
            # Converts to natural logarithm of g
            mean[m] = np.log((10.0 ** (imean)) / g)


            # Return stddevs in terms of natural log scaling
            stdevIntra = C['Sig1a'] - np.multiply(C['Sig1b'],ctx.mag)
            stdevInter = C['Sig2a'] - np.multiply(C['Sig2b'],ctx.mag)
            sig[m] = np.log(10.0 ** np.sqrt(np.add(np.power(stdevIntra,2), np.power(stdevInter,2))))
            tau[m] = np.log(10.0 ** stdevInter)
            phi[m] = np.log(10.0 ** stdevIntra)

    #: Table II        
    COEFFS = CoeffsTable(sa_damping=5, table="""
    IMT	    a1	     a2	     a3	     a4	    a5	    a6	    a7	     a8	     a9	     a10	Sig1a	Sig1b	Sig2a	Sig2b
    PGA	    2.522	-0.142	-3.184	 0.314	7.600	0.137	0.050	-0.084	 0.062	-0.044	0.665	0.065	0.222	0.022
    0.050	3.247	-0.225	-3.525	 0.359	7.400	0.098	0.005	-0.096	 0.078	-0.048	0.708	0.069	0.249	0.024
    0.055	3.125	-0.206	-3.418	 0.345	7.100	0.085	0.004	-0.096	 0.072	-0.050	0.672	0.063	0.235	0.022
    0.060	3.202	-0.212	-3.444	 0.347	7.400	0.079	0.002	-0.103	 0.073	-0.047	0.687	0.065	0.237	0.023
    0.065	3.442	-0.242	-3.571	 0.365	7.700	0.069	0.001	-0.104	 0.076	-0.035	0.693	0.067	0.241	0.023
    0.070	3.504	-0.249	-3.576	 0.367	7.900	0.064  -0.002	-0.114	 0.068	-0.043	0.647	0.059	0.225	0.021
    0.075	3.472	-0.240	-3.521	 0.358	8.000	0.064  -0.003	-0.121	 0.063	-0.046	0.674	0.063	0.227	0.021
    0.080	3.526	-0.248	-3.520	 0.358	8.100	0.069  -0.002	-0.116	 0.074	-0.040	0.756	0.076	0.252	0.025
    0.085	3.320	-0.215	-3.381	 0.336	8.000	0.067	0.010	-0.116	 0.075	-0.039	0.750	0.076	0.258	0.026
    0.090	3.309	-0.211	-3.353	 0.332	7.900	0.064	0.014	-0.119	 0.065	-0.048	0.727	0.072	0.249	0.025
    0.095	3.479	-0.240	-3.420	 0.345	7.800	0.062	0.014	-0.107	 0.073	-0.051	0.772	0.079	0.262	0.027
    0.100	3.596	-0.258	-3.511	 0.360	7.900	0.065	0.025	-0.095	 0.076	-0.047	0.747	0.075	0.249	0.025
    0.110	3.453	-0.239	-3.398	 0.345	7.900	0.077	0.041	-0.082	 0.072	-0.052	0.810	0.084	0.256	0.027
    0.120	3.330	-0.214	-3.300	 0.329	8.000	0.070	0.045	-0.081	 0.065	-0.046	0.753	0.075	0.240	0.024
    0.130	3.249	-0.195	-3.254	 0.321	8.200	0.069	0.043	-0.084	 0.056	-0.059	0.712	0.068	0.236	0.023
    0.140	2.993	-0.154	-3.088	 0.297	8.200	0.065	0.042	-0.074	 0.053	-0.067	0.650	0.059	0.218	0.020
    0.150	2.725	-0.111	-2.909	 0.270	8.300	0.067	0.044	-0.074	 0.067	-0.060	0.634	0.057	0.223	0.020
    0.160	2.738	-0.120	-2.912	 0.274	8.200	0.085	0.049	-0.069	 0.090	-0.061	0.734	0.072	0.251	0.025
    0.170	2.692	-0.114	-2.907	 0.275	8.200	0.091	0.053	-0.059	 0.087	-0.055	0.760	0.077	0.257	0.026
    0.180	2.665	-0.110	-2.907	 0.276	8.100	0.098	0.049	-0.057	 0.087	-0.054	0.736	0.073	0.251	0.025
    0.190	2.713	-0.118	-2.989	 0.288	8.100	0.112	0.059	-0.050	 0.090	-0.054	0.752	0.076	0.250	0.025
    0.200	2.632	-0.109	-2.990	 0.289	8.100	0.124	0.070	-0.033	 0.090	-0.039	0.784	0.080	0.251	0.026
    0.220	2.483	-0.088	-2.941	 0.281	7.900	0.136	0.078	-0.033	 0.086	-0.024	0.778	0.079	0.244	0.025
    0.240	2.212	-0.051	-2.823	 0.265	7.600	0.156	0.087	-0.037	 0.090	-0.020	0.770	0.077	0.235	0.024
    0.260	2.058	-0.036	-2.787	 0.263	7.300	0.179	0.077	-0.024	 0.120	 0.010	0.917	0.101	0.278	0.030
    0.280	1.896	-0.010	-2.732	 0.251	7.500	0.193	0.074	-0.023	 0.112	 0.027	0.947	0.104	0.285	0.031
    0.300	1.739	 0.009	-2.667	 0.244	7.100	0.192	0.069	-0.034	 0.104	 0.012	0.890	0.095	0.267	0.028
    0.320	1.728	 0.001	-2.688	 0.251	7.100	0.207	0.073	-0.021	 0.118	 0.008	0.917	0.098	0.273	0.029
    0.340	1.598	 0.020	-2.667	 0.246	7.200	0.216	0.078	-0.010	 0.118	 0.005	0.896	0.095	0.261	0.028
    0.360	1.477	 0.034	-2.641	 0.244	6.900	0.230	0.091	-0.013	 0.107	-0.011	0.846	0.087	0.254	0.026
    0.380	1.236	 0.071	-2.534	 0.227	6.700	0.247	0.100	-0.010	 0.106	-0.018	0.803	0.080	0.250	0.025
    0.400	1.070	 0.091	-2.474	 0.219	6.300	0.256	0.097	-0.013	 0.115	-0.020	0.793	0.078	0.244	0.024
    0.420	0.998	 0.096	-2.469	 0.220	5.900	0.259	0.100	-0.021	 0.116	-0.024	0.757	0.072	0.233	0.022
    0.440	1.045	 0.085	-2.540	 0.231	6.300	0.269	0.114	-0.016	 0.114	-0.028	0.787	0.077	0.241	0.024
    0.460	0.980	 0.093	-2.564	 0.234	6.300	0.278	0.122	-0.011	 0.108	-0.029	0.766	0.074	0.238	0.023
    0.480	0.874	 0.103	-2.530	 0.231	6.200	0.286	0.130	 0.001	 0.118	-0.024	0.778	0.076	0.240	0.023
    0.500	0.624	 0.139	-2.410	 0.212	6.100	0.289	0.133	 0.004	 0.126	-0.026	0.798	0.079	0.246	0.024
    0.550	0.377	 0.174	-2.317	 0.196	6.100	0.293	0.137	-0.004	 0.118	-0.035	0.841	0.085	0.268	0.027
    0.600	0.359	 0.158	-2.343	 0.206	5.400	0.311	0.136	 0.008	 0.118	-0.028	0.919	0.099	0.308	0.033
    0.650	0.130	 0.182	-2.294	 0.202	5.000	0.318	0.149	 0.005	 0.107	-0.031	0.867	0.090	0.301	0.031
    0.700  -0.014	 0.198	-2.305	 0.205	4.800	0.327	0.154	-0.011	 0.105	-0.032	0.803	0.080	0.298	0.030
    0.750  -0.307	 0.236	-2.201	 0.191	4.700	0.318	0.148	-0.001	 0.114	-0.032	0.774	0.076	0.278	0.027
    0.800  -0.567	 0.279	-2.083	 0.170	5.200	0.332	0.178	-0.003	 0.083	-0.062	0.661	0.059	0.240	0.021
    0.850  -0.519	 0.262	-2.177	 0.186	4.900	0.341	0.183	 0.005	 0.085	-0.070	0.694	0.064	0.253	0.023
    0.900  -0.485	 0.249	-2.246	 0.199	4.500	0.354	0.191	-0.003	 0.072	-0.082	0.714	0.067	0.263	0.025
    0.950  -1.133	 0.369	-1.957	 0.143	5.500	0.353	0.204	-0.025	 0.024	-0.109	0.309	0.000	0.121	0.000
    1.000  -1.359	 0.403	-1.848	 0.124	6.000	0.357	0.211	-0.013	 0.024	-0.101	0.305	0.000	0.120	0.000
    1.100  -1.675	 0.437	-1.711	 0.108	5.500	0.373	0.213	-0.029	-0.007	-0.108	0.306	0.000	0.118	0.000
    1.200  -1.982	 0.477	-1.636	 0.095	5.400	0.389	0.226	-0.014	-0.017	-0.095	0.297	0.000	0.120	0.000
    1.300  -2.226	 0.511	-1.605	 0.089	5.500	0.395	0.215	-0.004	-0.025	-0.085	0.296	0.000	0.119	0.000
    1.400  -2.419	 0.533	-1.541	 0.080	6.000	0.408	0.237	 0.028	-0.040	-0.091	0.290	0.000	0.115	0.000
    1.500  -2.639	 0.550	-1.443	 0.074	4.900	0.405	0.229	 0.020	-0.053	-0.133	0.292	0.000	0.111	0.000
    1.600  -2.900	 0.587	-1.351	 0.060	5.200	0.387	0.216	 0.019	-0.056	-0.131	0.296	0.000	0.114	0.000
    1.700  -2.695	 0.564	-1.564	 0.086	6.500	0.380	0.212	 0.001	-0.081	-0.141	0.302	0.000	0.117	0.000
    1.800  -3.209	 0.630	-1.410	 0.069	5.400	0.391	0.174	 0.012	-0.035	-0.154	0.291	0.000	0.128	0.000
    1.900  -3.313	 0.647	-1.424	 0.067	5.900	0.386	0.175	 0.030	-0.033	-0.145	0.290	0.000	0.133	0.000
    2.000  -3.063	 0.586	-1.372	 0.070	4.200	0.421	0.177	 0.008	-0.019	-0.174	0.282	0.000	0.134	0.000
    2.100  -3.043	 0.578	-1.435	 0.080	4.300	0.404	0.171	 0.002	-0.026	-0.164	0.281	0.000	0.134	0.000
    2.200  -3.068	 0.575	-1.448	 0.083	4.200	0.394	0.160	-0.007	-0.034	-0.169	0.283	0.000	0.136	0.000
    2.300  -3.996	 0.740	-0.829	-0.025	5.100	0.349	0.135	-0.010	-0.031	-0.125	0.282	0.000	0.137	0.000
    2.400  -4.108	 0.758	-0.755	-0.038	5.300	0.338	0.119	-0.024	-0.050	-0.147	0.284	0.000	0.137	0.000
    2.500  -4.203	 0.768	-0.714	-0.044	5.100	0.325	0.103	-0.026	-0.063	-0.155	0.285	0.000	0.137	0.000
    """)

class AmbraseysEtAl2005Vertical(AmbraseysEtAl2005):
    """
    Implements the vertical PGA and SA GMPE of "N.N. AMBRASEYS1, J. DOUGLAS1, S.K. SARMA and
    P.M. SMIT (2005): Equations for the Estimation of Strong Ground Motions from Shallow Crustal
    Earthquakes Using Data from Europe and the Middle East: Vertical Peak Ground Acceleration and 
    Spectral Acceleration, Bulletin of Earthquake Engineering: 3:55–73, DOI 10.1007/s10518-005-0186-x.
    """

    #: Supported intensity measure component is vertical
    DEFINED_FOR_INTENSITY_MEASURE_COMPONENT = const.IMC.VERTICAL

    #: Table I
    COEFFS = CoeffsTable(sa_damping=5, table="""
    IMT	    a1	    a2	     a3	    a4	    a5	    a6	    a7	     a8	     a9	     a10	Sig1a	Sig1b	Sig2a	Sig2b
    PGA	    0.835	0.083	-2.489	0.206	5.600	0.078	0.046	-0.126	 0.005	-0.082	0.262	0.000	0.100	0.000
    0.050	1.426	0.053	-2.681	0.217	4.700	0.090	0.039	-0.168	 0.005	-0.070	0.301	0.000	0.115	0.000
    0.055	1.330	0.077	-2.598	0.200	5.100	0.086	0.041	-0.162	-0.009	-0.067	0.296	0.000	0.112	0.000
    0.060	1.333	0.090	-2.601	0.195	5.700	0.091	0.051	-0.171	-0.016	-0.069	0.295	0.000	0.111	0.000
    0.065	1.261	0.106	-2.538	0.185	6.000	0.082	0.058	-0.172	-0.026	-0.078	0.292	0.000	0.109	0.000
    0.070	1.231	0.107	-2.497	0.183	6.100	0.081	0.050	-0.164	-0.011	-0.083	0.290	0.000	0.106	0.000
    0.075	1.119	0.119	-2.403	0.173	6.000	0.079	0.047	-0.149	-0.011	-0.077	0.290	0.000	0.106	0.000
    0.080	0.947	0.143	-2.287	0.158	5.800	0.075	0.045	-0.142	-0.013	-0.075	0.293	0.000	0.108	0.000
    0.085	0.794	0.169	-2.171	0.140	6.100	0.070	0.047	-0.132	 0.000	-0.078	0.295	0.000	0.108	0.000
    0.090	0.721	0.181	-2.123	0.132	6.500	0.078	0.054	-0.118	 0.012	-0.083	0.294	0.000	0.106	0.000
    0.095	0.695	0.187	-2.119	0.131	6.700	0.081	0.055	-0.116	 0.007	-0.089	0.287	0.000	0.106	0.000
    0.100	0.844	0.166	-2.217	0.146	7.100	0.083	0.050	-0.108	 0.003	-0.091	0.287	0.000	0.106	0.000
    0.110	0.990	0.145	-2.270	0.154	7.800	0.079	0.057	-0.105	-0.014	-0.100	0.285	0.000	0.104	0.000
    0.120	0.830	0.168	-2.133	0.136	7.900	0.065	0.054	-0.104	-0.025	-0.091	0.281	0.000	0.105	0.000
    0.130	0.655	0.189	-2.048	0.127	7.700	0.053	0.045	-0.090	-0.013	-0.087	0.278	0.000	0.104	0.000
    0.140	0.600	0.179	-2.012	0.132	6.700	0.057	0.055	-0.084	-0.006	-0.084	0.282	0.000	0.103	0.000
    0.150	0.824	0.130	-2.107	0.152	6.400	0.077	0.058	-0.082	 0.009	-0.084	0.554	0.045	0.203	0.017
    0.160	0.798	0.116	-2.093	0.160	5.600	0.079	0.050	-0.067	 0.036	-0.078	0.619	0.056	0.220	0.020
    0.170	0.989	0.087	-2.262	0.185	6.000	0.089	0.045	-0.054	 0.051	-0.080	0.684	0.067	0.242	0.024
    0.180	0.764	0.119	-2.160	0.170	5.900	0.099	0.056	-0.045	 0.053	-0.077	0.607	0.055	0.216	0.020
    0.190	0.798	0.112	-2.208	0.177	6.300	0.107	0.057	-0.035	 0.059	-0.074	0.591	0.053	0.204	0.018
    0.200	0.758	0.113	-2.182	0.174	6.300	0.111	0.056	-0.025	 0.073	-0.068	0.625	0.059	0.212	0.020
    0.220	0.907	0.082	-2.319	0.197	5.900	0.117	0.072	-0.029	 0.088	-0.051	0.672	0.067	0.235	0.023
    0.240	1.165	0.038	-2.543	0.231	6.700	0.118	0.091	-0.039	 0.094	-0.056	0.613	0.057	0.213	0.020
    0.260	1.238	0.016	-2.590	0.245	6.200	0.111	0.082	-0.051	 0.078	-0.071	0.670	0.067	0.238	0.024
    0.280	1.165	0.020	-2.594	0.249	5.900	0.112	0.083	-0.042	 0.066	-0.064	0.605	0.056	0.217	0.020
    0.300	0.986	0.053	-2.574	0.242	6.100	0.111	0.082	-0.047	 0.070	-0.052	0.569	0.051	0.215	0.019
    0.320	0.685	0.104	-2.402	0.212	6.400	0.103	0.070	-0.055	 0.068	-0.056	0.572	0.051	0.216	0.019
    0.340	0.398	0.144	-2.251	0.189	6.400	0.110	0.071	-0.042	 0.071	-0.056	0.537	0.047	0.205	0.018
    0.360	0.333	0.146	-2.247	0.191	6.300	0.120	0.072	-0.031	 0.082	-0.055	0.544	0.048	0.209	0.019
    0.380	0.579	0.097	-2.415	0.221	6.200	0.128	0.077	-0.023	 0.098	-0.061	0.577	0.054	0.224	0.021
    0.400	0.704	0.075	-2.502	0.234	6.200	0.127	0.087	-0.025	 0.108	-0.069	0.551	0.049	0.215	0.019
    0.420	0.318	0.135	-2.345	0.209	6.100	0.129	0.103	-0.034	 0.090	-0.078	0.270	0.000	0.103	0.000
    0.440	0.446	0.110	-2.466	0.230	6.500	0.130	0.101	-0.017	 0.081	-0.081	0.272	0.000	0.101	0.000
    0.460	0.391	0.113	-2.478	0.233	6.800	0.136	0.103	 0.002	 0.082	-0.070	0.272	0.000	0.102	0.000
    0.480	0.253	0.132	-2.455	0.228	6.800	0.147	0.105	 0.017	 0.085	-0.052	0.273	0.000	0.105	0.000
    0.500	0.075	0.154	-2.381	0.219	6.600	0.151	0.103	 0.026	 0.092	-0.047	0.275	0.000	0.108	0.000
    0.550  -0.147	0.178	-2.334	0.216	6.500	0.149	0.108	 0.027	 0.099	-0.029	0.273	0.000	0.115	0.000
    0.600	0.193	0.095	-2.521	0.258	5.500	0.167	0.099	 0.037	 0.125	-0.037	0.602	0.056	0.259	0.024
    0.650  -0.036	0.131	-2.463	0.244	6.000	0.187	0.107	 0.047	 0.125	-0.024	0.569	0.050	0.239	0.021
    0.700  -0.508	0.217	-2.337	0.216	6.700	0.208	0.114	 0.033	 0.113	-0.013	0.284	0.000	0.120	0.000
    0.750  -0.429	0.187	-2.326	0.220	6.000	0.219	0.109	 0.044	 0.157	-0.026	0.587	0.052	0.245	0.022
    0.800  -0.617	0.214	-2.339	0.223	6.400	0.251	0.140	 0.018	 0.130	-0.060	0.278	0.000	0.118	0.000
    0.850  -0.272	0.143	-2.512	0.255	6.000	0.261	0.120	 0.051	 0.163	-0.056	0.598	0.055	0.248	0.023
    0.900  -0.786	0.220	-2.377	0.236	5.600	0.281	0.138	 0.028	 0.142	-0.074	0.277	0.000	0.121	0.000
    0.950  -1.112	0.272	-2.208	0.208	5.700	0.281	0.126	 0.032	 0.144	-0.081	0.277	0.000	0.119	0.000
    1.000  -1.200	0.296	-2.185	0.196	6.700	0.269	0.117	 0.050	 0.145	-0.073	0.278	0.000	0.115	0.000
    1.100  -1.594	0.361	-2.017	0.164	7.300	0.269	0.117	 0.049	 0.113	-0.070	0.286	0.000	0.113	0.000
    1.200  -1.754	0.383	-2.033	0.163	7.800	0.284	0.141	 0.053	 0.104	-0.055	0.279	0.000	0.118	0.000
    1.300  -1.838	0.391	-2.059	0.167	8.000	0.302	0.151	 0.049	 0.077	-0.062	0.282	0.000	0.121	0.000
    1.400  -2.296	0.457	-1.787	0.123	8.900	0.313	0.174	 0.100	 0.067	-0.052	0.279	0.000	0.110	0.000
    1.500  -2.616	0.507	-1.581	0.088	9.300	0.319	0.178	 0.102	 0.054	-0.078	0.285	0.000	0.108	0.000
    1.600  -2.596	0.526	-1.692	0.089	11.90	0.313	0.184	 0.124	 0.049	-0.067	0.291	0.000	0.111	0.000
    1.700  -2.512	0.518	-1.835	0.106	12.80	0.305	0.176	 0.104	 0.036	-0.080	0.296	0.000	0.117	0.000
    1.800  -2.947	0.550	-1.661	0.099	9.100	0.313	0.154	 0.076	 0.053	-0.110	0.292	0.000	0.129	0.000
    1.900  -3.007	0.556	-1.640	0.095	8.700	0.307	0.146	 0.060	 0.047	-0.128	0.294	0.000	0.129	0.000
    2.000  -2.711	0.531	-1.655	0.083	11.80	0.319	0.171	 0.051	 0.113	-0.148	0.290	0.000	0.126	0.000
    2.100  -2.765	0.531	-1.663	0.085	11.70	0.318	0.170	 0.056	 0.128	-0.155	0.291	0.000	0.128	0.000
    2.200  -2.677	0.502	-1.781	0.111	11.10	0.306	0.145	 0.058	 0.140	-0.156	0.293	0.000	0.132	0.000
    2.300  -3.340	0.616	-1.287	0.031	11.10	0.234	0.112	 0.024	 0.122	-0.111	0.297	0.000	0.131	0.000
    2.400  -3.490	0.623	-1.265	0.035	10.20	0.228	0.112	 0.018	 0.114	-0.110	0.291	0.000	0.131	0.000
    2.500  -3.731	0.633	-1.182	0.035	7.700	0.221	0.097	 0.012	 0.092	-0.098	0.283	0.000	0.135	0.000
    """)